#ifndef ISLAND_H
#define ISLAND_H

#include "Mesh.h"

class Island : public Mesh
{
	public:
		Island();
		virtual ~Island();

		void draw(const Camera& camera, const vector<Light*>& lights);
		void init(const char* filename, ID3D11Device* g_device, ID3D11DeviceContext* g_context);
		void draw(int subset, ID3DX11Effect* fx, const char* technique) const;

		void Update(float dt);

		void startFog();
		void reset();

	private:
		bool bFog;
		float counter;
		ID3DX11EffectMatrixVariable* fx_m_World;
		ID3DX11EffectMatrixVariable* fx_m_WorldViewProj;
		ID3DX11EffectMatrixVariable* fx_m_L_ViewProj;

		ID3DX11EffectShaderResourceVariable* fx_tex_shadow_map;
		
		ID3DX11EffectVariable*	fx_lights;

		ID3DX11EffectScalarVariable*	fx_num_lights;

		ID3DX11EffectVectorVariable*	fx_pEye;
		ID3DX11EffectScalarVariable*	fx_bShadowed;
		ID3DX11EffectScalarVariable*	fx_bUsePCSS;

		ID3D11ShaderResourceView*		srvSand;

};


#endif